home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1995 March / PC Plus Super CD (Issue 101) (March 1995).iso / tclite / include / arrayob.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-27  |  1.2 KB  |  42 lines

  1. #ifndef    ARRAYOB_H
  2. #define    ARRAYOB_H
  3.  
  4. #include "collect.h"
  5. #include <alloc.h>
  6.  
  7. extern const Class class_ArrayOb;
  8.  
  9. class ArrayOb: public Collection {
  10.     Object** v;
  11.     unsigned sz;
  12.     void allocSizeErr() const;
  13.     void indexRangeErr() const;
  14. public:
  15.     ArrayOb(unsigned size =CLTN_DEFAULT_CAPACITY);
  16.     ArrayOb(const ArrayOb&);
  17.     ~ArrayOb();
  18.     Object*& elem(int i) const    { return v[i]; }
  19.     bool operator!=(const ArrayOb& a) const   { return !(*this==a); }
  20.     void operator=(const ArrayOb&);
  21.     bool operator==(const ArrayOb&) const;
  22.     Object*& operator[](int i) const {
  23.         if ((unsigned)i >= sz) indexRangeErr();
  24.         return v[i];
  25.     }
  26.     virtual Collection& addContentsTo(Collection&) const;
  27.     virtual Object*& at(int i) const;
  28.     virtual unsigned capacity() const;
  29.     virtual void deepenShallowCopy();
  30.     virtual Object* doNext(Iterator&) const;
  31.     virtual unsigned hash() const;
  32.     virtual const Class* isA() const;
  33.     virtual bool isEqual(const Object&) const;
  34.     virtual void printOn(ostream& strm) const;
  35.     virtual void reSize(unsigned);
  36.     virtual unsigned size() const;
  37.     virtual void sort() const;
  38.     virtual const Class* species() const;
  39. };
  40.  
  41. #endif
  42.